1 package edu.jiangxin.apktoobox.swing.treetable;
2
3 import edu.jiangxin.apktoolbox.swing.treetable.MyAbstractTreeTableModel;
4 import edu.jiangxin.apktoolbox.swing.treetable.MyTreeTable;
5
6 import java.awt.Container;
7 import java.awt.GridLayout;
8 import java.io.Serial;
9 import java.util.ArrayList;
10 import java.util.Date;
11 import java.util.List;
12
13 import javax.swing.JFrame;
14 import javax.swing.JScrollPane;
15 import javax.swing.SwingUtilities;
16 import javax.swing.UIManager;
17
18
19 public class TreeTableMain extends JFrame {
20 @Serial
21 private static final long serialVersionUID = 1L;
22
23 public TreeTableMain() {
24 super("Tree Table Demo");
25 }
26
27
28 public void initialize() {
29 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
30
31 setLayout(new GridLayout(0, 1));
32
33 MyAbstractTreeTableModel treeTableModel = new MyDataModel(createDataStructure());
34
35 MyTreeTable myTreeTable = new MyTreeTable();
36 myTreeTable.initialize(treeTableModel);
37
38 Container cPane = getContentPane();
39
40 cPane.add(new JScrollPane(myTreeTable));
41
42 setSize(1000, 800);
43 setLocationRelativeTo(null);
44 }
45
46
47 private static MyDataNode createDataStructure() {
48 List<MyDataNode> children1 = new ArrayList<MyDataNode>();
49 children1.add(new MyDataNode("N12", "C12", new Date(), Integer.valueOf(50), null));
50 children1.add(new MyDataNode("N13", "C13", new Date(), Integer.valueOf(60), null));
51 children1.add(new MyDataNode("N14", "C14", new Date(), Integer.valueOf(70), null));
52 children1.add(new MyDataNode("N15", "C15", new Date(), Integer.valueOf(80), null));
53
54 List<MyDataNode> children2 = new ArrayList<MyDataNode>();
55 children2.add(new MyDataNode("N12", "C12", new Date(), Integer.valueOf(10), null));
56 children2.add(new MyDataNode("N13", "C13", new Date(), Integer.valueOf(20), children1));
57 children2.add(new MyDataNode("N14", "C14", new Date(), Integer.valueOf(30), null));
58 children2.add(new MyDataNode("N15", "C15", new Date(), Integer.valueOf(40), null));
59
60 List<MyDataNode> rootNodes = new ArrayList<MyDataNode>();
61 rootNodes.add(new MyDataNode("N1", "C1", new Date(), Integer.valueOf(10), children2));
62 rootNodes.add(new MyDataNode("N2", "C2", new Date(), Integer.valueOf(10), children1));
63 rootNodes.add(new MyDataNode("N3", "C3", new Date(), Integer.valueOf(10), children2));
64 rootNodes.add(new MyDataNode("N4", "C4", new Date(), Integer.valueOf(10), children1));
65 rootNodes.add(new MyDataNode("N5", "C5", new Date(), Integer.valueOf(10), children1));
66 rootNodes.add(new MyDataNode("N6", "C6", new Date(), Integer.valueOf(10), children1));
67 rootNodes.add(new MyDataNode("N7", "C7", new Date(), Integer.valueOf(10), children1));
68 rootNodes.add(new MyDataNode("N8", "C8", new Date(), Integer.valueOf(10), children1));
69 rootNodes.add(new MyDataNode("N9", "C9", new Date(), Integer.valueOf(10), children1));
70 rootNodes.add(new MyDataNode("N10", "C10", new Date(), Integer.valueOf(10), children1));
71 rootNodes.add(new MyDataNode("N11", "C11", new Date(), Integer.valueOf(10), children1));
72 rootNodes.add(new MyDataNode("N12", "C7", new Date(), Integer.valueOf(10), children1));
73 rootNodes.add(new MyDataNode("N13", "C8", new Date(), Integer.valueOf(10), children1));
74 rootNodes.add(new MyDataNode("N14", "C9", new Date(), Integer.valueOf(10), children1));
75 rootNodes.add(new MyDataNode("N15", "C10", new Date(), Integer.valueOf(10), children1));
76 rootNodes.add(new MyDataNode("N16", "C11", new Date(), Integer.valueOf(10), children1));
77 MyDataNode root = new MyDataNode("R1", "R1", new Date(), Integer.valueOf(10), rootNodes);
78
79 return root;
80 }
81
82 public static void main(final String[] args) {
83 Runnable gui = new Runnable() {
84
85 public void run() {
86 try {
87 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
88 } catch (Exception e) {
89 e.printStackTrace();
90 }
91 TreeTableMain treeTableMain = new TreeTableMain();
92 treeTableMain.initialize();
93 treeTableMain.setVisible(true);
94 }
95 };
96 SwingUtilities.invokeLater(gui);
97 }
98 }